1. Technical Field
The present invention relates in general to a method and system for using color and highlighting to display a tree view display. More particularly, the present invention relates to a system and method for providing a non-indented, layered representation of tree view data.
2. Description of the Related Art
Computer systems in general and International Business Machines (IBM) compatible personal computer systems in particular have attained widespread use for providing computer power to many segments of today""s modern society. Systems with microprocessors are finding themselves in an array of smaller and more specialized objects that previously were largely untouched by computer technology. These devices are sometimes called xe2x80x9cpervasive computing systemsxe2x80x9d because of their appearance as both traditionally computerized devices, such as desktop computers, tower computers, and portable computers, as well as newly computerized devices such as telephones, appliances, automobiles, and other devices. Pervasive computing devices generally include a system processor and associated volatile and non-volatile memory, a display area, input means, and often interfaces, such as a network interface or modem, to other computing devices.
One of the distinguishing characteristics of these systems is the use of a system board to electrically connect these components together. Pervasive computing devices are xe2x80x9cinformation handling systemsxe2x80x9d which are designed primarily to give independent computing power to a single user, or a group of users in the case of networked computing devices. Pervasive computing devices are often inexpensively priced for purchase by individuals or businesses. A pervasive computing device may also include one or more I/O devices (i.e. peripheral devices) which are coupled to the system processor and which perform specialized functions. Examples of I/O devices include modems, sound and video devices or specialized communication devices. Nonvolatile storage devices such as hard disks, CD-ROM drives and magneto-optical drives are also considered to be peripheral devices. Pervasive computing devices are often linked to computing systems and other pervasive computing devices using a network, such as a local area network (LAN), wide area network (WAN), or other type of network such as the Internet. By linking to computers including pervasive computing devices, a pervasive computing device can use resources owned by another computing device. These resources can include files stored on nonvolatile storage devices and resources such as printers.
Pervasive computing devices are often designed to perform a specialized function that has native applications related to the function being performed. For example, a cellular telephone may be a pervasive computing device and may have a telephone directory as a native application. The telephone directory application can store names and phone numbers the user of the cellular phone wishes to store for easy retrieval. Because pervasive computing devices are often portable devices, such as a xe2x80x9cpersonal digital assistantxe2x80x9d (xe2x80x9cPDAxe2x80x9d) or mobile telephones. As a portable device, or as a device incorporated within a larger appliance, pervasive computing devices may have constrained displays in terms of both resolution and screen size. One challenge in using devices with constrained screens is being able to navigate through layered information.
One way in which layered, or hierarchical, information is presented is by using a xe2x80x9ctree viewxe2x80x9d control to display the information to the user. A tree view control is a window that displays a hierarchical list of items, such as the headings in a document, the entries in an index, or the files and directories on a disk. Items displayed often include a label and an optional bitmapped image, and each item can have a list of subitems associated with it. By clicking an item, the user can expand or collapse the associated list of subitems. FIG. 1a shows a traditional tree view control including how items and subitems are displayed in relation to one another.
Traditional tree view window 100 shows example directories stored on a disk. Disk item 105, also called the xe2x80x9croot directory,xe2x80x9d includes a bitmap representing a drive and a label (xe2x80x9cDisk (c:)xe2x80x9d) corresponding to the disk. Two high level directories, directory 110 (xe2x80x9cParent Axe2x80x9d) and directory 130 (xe2x80x9cParent Bxe2x80x9d) are shown within the root directory. The hierarchical structure of the information is depicted by showing the directories under the root directory and indented horizontally from the horizontal position of the root directory. Likewise, subdirectories of the two high level directories are shown under the respective high level directory and further indented horizontally from the horizontal position of the parent directory. For example, child directory 115 is shown below parent directory 110 as well as indented horizontally from the horizontal starting position of parent directory 110. Similarly, child directory 135 is shown below parent directory 130 as well as indented horizontally from the horizontal starting position of parent directory 130. Because any item can include subitems, the level of data shown, and the corresponding visual depth shown in the vertical and horizontal displacement, is virtually limitless.
As shown, child directory 115 has two subdirectories (grandchild directories 120 and 125) and child directory 135 has two subdirectories (grandchild directories 140 and 145). The grandchild directories, and their respective subdirectories, can have further subdirectories until all the data needed to be displayed is shown. If the horizontal displacement of a subitem is outside the window area (tree view window 100), a horizontal scroll bar is often placed on the bottom of the window to allow the user to scroll the display to show higher level items on the left side of the window or lower level windows on the right side of the window. Scrolling between high and low level information is challenging to the user because the visual relationship between data items is weakened when only high or low level information can be seen at a given time.
This challenge is exacerbated when the resources of the pervasive computing device are constrained. For example, because of the small form factor the display is often smaller than in monitors attached to traditional desktop systems. This constraint may prevent the pervasive computing device from displaying more than one or two layers in a traditional tree view control.
What is needed, therefore, is a way to display hierarchical relationships between items in a flat tree without needing to provide horizontal displacements to communicate the level of a particular item and its relationship with other items being displayed.
It has been discovered that hierarchical relationships and layered data can be represented without using differing degrees of indentations for the names of data items at different levels in the hierarchy. The displayed names of data items appear in a flat or non-indented list. The level of each data item is indicated by a bar or marker which creates a conspicuous visual discontinuity in the space occupied by the data item name. The relative horizontal displacements of the visual discontinuities are indicative of the relative levels of the data items. In one embodiment, the discontinuity is provided by applying shading in an offset manner on a flat tree control structure. A level indicator, such as a bar or marker, is used to identify the item""s level. If intense colors are desired for the bar or marker, the data item name is superimposed on the bar or marker which acts as a background fill. If translucent colors are acceptable, the bar or marker may be superimposed on the data item name. Color and grayscale changes can be provided to further denote the level of a particular item. The horizontally displaced bars or markers enables a user to identify the layered relationships between tree view nodes even if the shading or colors between nodes is difficult to ascertain because of display limitations or the user""s visual limitations.
Highlighting, such as color or grayscale fill, can also be used to visually identify items with a particular layer while virtual displacement is used to show which subitems belong to a higher level item. For example, the highest level items may be shown with a first fill color (e.g., yellow), the next, or second, level items are shown with a second fill color (e.g., orange), third level items are in turn shown with a third fill color (e.g., light blue), and fourth level items are shown with a fourth fill color (e.g., dark blue). If color is not supported on the display, shades of gray can be used instead.
When visually using the flat tree control, levels can be identified by color. In the example described above, if the user sees a yellow filled item, he knows that the item is a high level item. If all the items shown are the same color then the user knows that he is looking at one layer of data. If the fill color from one item to the next changes, for example from yellow to orange, the user understands that a level change is being shown. In the example described above, the orange item would be a subitem of the yellow item.
By using color or grayscale changes to denote levels, groups of data are identified without using horizontal displacement of item names. In addition, numeric level indicators can be provided to further note the various levels. The numeric level indicators may be well suited to environments in which the display resolution is poor or variations in shading or color is difficult to determine because of a user""s visual limitations or other considerations.
Further highlighting is used to indicate attributes of a particular layer. For example, a particular fill color or shading intensity can be used to denote the layer to which an item belongs, while a color can be added to note another attribute, such as whether an error has been found in the item, new information is located in the item, or to identify the importance of a particular item in relation to the other items within the same layer. The highlighting can be added so that the fill, or background, color identifies an items layer with highlighting being added to the text characters comprising the item""s label. Other highlighting, such as blinking, inverted text, bold text, and underlining can be used instead, or in addition to, changing an item""s label color.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.